Use -no-undefined on Win32. Make libgdk_pixbuf_1_3_la_OBJECTS depend on
authorTor Lillqvist <tml@iki.fi>
Mon, 29 Oct 2001 06:48:04 +0000 (06:48 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 29 Oct 2001 06:48:04 +0000 (06:48 +0000)
2001-10-29  Tor Lillqvist  <tml@iki.fi>

* Makefile.am: Use -no-undefined on Win32. Make
libgdk_pixbuf_1_3_la_OBJECTS depend on
gdk-pixbuf-marshal.c. Install import libraries.

* gdk_pixbuf.def: Update.

* gdk-pixbuf-io.c: (Win32) Use G_WIN32_DLLMAIN_FOR_DLL_NAME, saves
the actual DLL name of libgdk_pixbuf.
(get_libdir): Use it instead of guessing.

* io-xbm.c (gdk_pixbuf__xbm_image_begin_load): Use
g_file_open_tmp() insread of mkstemp().

gdk-pixbuf/ChangeLog
gdk-pixbuf/Makefile.am
gdk-pixbuf/gdk-pixbuf-io.c
gdk-pixbuf/gdk_pixbuf.def
gdk-pixbuf/io-xbm.c
gdk-pixbuf/makefile.mingw.in

index 5bcece744bcf5a8fefde7e346b08fe9c7667d64b..df906728e9c268560434b89567af3c549c1410cc 100644 (file)
@@ -1,3 +1,18 @@
+2001-10-29  Tor Lillqvist  <tml@iki.fi>
+
+       * Makefile.am: Use -no-undefined on Win32. Make
+       libgdk_pixbuf_1_3_la_OBJECTS depend on
+       gdk-pixbuf-marshal.c. Install import libraries.
+
+       * gdk_pixbuf.def: Update.
+
+       * gdk-pixbuf-io.c: (Win32) Use G_WIN32_DLLMAIN_FOR_DLL_NAME, saves
+       the actual DLL name of libgdk_pixbuf.
+       (get_libdir): Use it instead of guessing.
+
+       * io-xbm.c (gdk_pixbuf__xbm_image_begin_load): Use
+       g_file_open_tmp() insread of mkstemp().
+
 2001-10-18  Matthias Clasen  <matthiasc@poet.de>
 
        * io-xbm.c (gdk_pixbuf__xbm_image_load_real): Don't dereference
index 53ab591d369c10fb0251eec2e68543ec8dd6786f..a94fc56434119c613e2e4b62e6b5264dad678a58 100644 (file)
@@ -1,6 +1,39 @@
 
 SUBDIRS = pixops
 
+if PLATFORM_WIN32
+no_undefined = -no-undefined
+endif
+
+if OS_WIN32
+gdk_pixbuf_def = gdk_pixbuf.def
+gdk_pixbuf_symbols = -export-symbols $(gdk_pixbuf_def)
+
+install-libtool-import-lib:
+       $(INSTALL) .libs/libgdk_pixbuf-1.3.dll.a $(DESTDIR)$(libdir)
+uninstall-libtool-import-lib:
+       -rm $(DESTDIR)$(libdir)/libdk_pixbuf-1.3.dll.a
+else
+install-libtool-import-lib:
+uninstall-libtool-import-lib:
+endif
+
+if MS_LIB_AVAILABLE
+noinst_DATA = gdk_pixbuf-1.3.lib
+
+gdk_pixbuf-1.3.lib: libgdk_pixbuf-1.3.la gdk_pixbuf.def
+       lib -name:libgdk_pixbuf-1.3-@LT_CURRENT_MINUS_AGE@.dll -def:gdk_pixbuf.def -out:$@
+
+install-ms-lib:
+       $(INSTALL) gdk_pixbuf-1.3.lib $(DESTDIR)$(libdir)
+
+uninstall-ms-lib:
+       -rm $(DESTDIR)$(libdir)/gdk_pixbuf-1.3.lib
+else
+install-ms-lib:
+uninstall-ms-lib:
+endif
+
 lib_LTLIBRARIES =              \
        libgdk_pixbuf-1.3.la
 
@@ -12,7 +45,7 @@ module_libs = libgdk_pixbuf-1.3.la $(GDK_PIXBUF_DEP_LIBS)
 # The PNG plugin.
 #
 libpixbufloader_png_la_SOURCES = io-png.c
-libpixbufloader_png_la_LDFLAGS = -avoid-version -module
+libpixbufloader_png_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_png_la_LIBADD = $(LIBPNG) $(module_libs)
 libpixbufloader_static_png_la_SOURCES = io-png.c
 
@@ -21,7 +54,7 @@ libpixbufloader_static_png_la_SOURCES = io-png.c
 #
 libpixbufloader_static_jpeg_la_SOURCES = io-jpeg.c
 libpixbufloader_jpeg_la_SOURCES = io-jpeg.c
-libpixbufloader_jpeg_la_LDFLAGS = -avoid-version -module
+libpixbufloader_jpeg_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_jpeg_la_LIBADD = $(LIBJPEG) $(module_libs)
 
 #
@@ -29,7 +62,7 @@ libpixbufloader_jpeg_la_LIBADD = $(LIBJPEG) $(module_libs)
 #
 libpixbufloader_static_xpm_la_SOURCES = io-xpm.c
 libpixbufloader_xpm_la_SOURCES = io-xpm.c
-libpixbufloader_xpm_la_LDFLAGS = -avoid-version -module
+libpixbufloader_xpm_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_xpm_la_LIBADD = $(module_libs)
 
 #
@@ -37,7 +70,7 @@ libpixbufloader_xpm_la_LIBADD = $(module_libs)
 #
 libpixbufloader_static_gif_la_SOURCES = io-gif.c io-gif-animation.c io-gif-animation.h
 libpixbufloader_gif_la_SOURCES = io-gif.c io-gif-animation.c io-gif-animation.h
-libpixbufloader_gif_la_LDFLAGS = -avoid-version -module
+libpixbufloader_gif_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_gif_la_LIBADD = $(module_libs)
 
 #
@@ -45,7 +78,7 @@ libpixbufloader_gif_la_LIBADD = $(module_libs)
 #
 libpixbufloader_static_ico_la_SOURCES = io-ico.c
 libpixbufloader_ico_la_SOURCES = io-ico.c
-libpixbufloader_ico_la_LDFLAGS = -avoid-version -module
+libpixbufloader_ico_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_ico_la_LIBADD = $(module_libs)
 
 #
@@ -53,7 +86,7 @@ libpixbufloader_ico_la_LIBADD = $(module_libs)
 #
 libpixbufloader_static_ras_la_SOURCES = io-ras.c
 libpixbufloader_ras_la_SOURCES = io-ras.c
-libpixbufloader_ras_la_LDFLAGS = -avoid-version -module
+libpixbufloader_ras_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_ras_la_LIBADD = $(module_libs)
 
 #
@@ -61,7 +94,7 @@ libpixbufloader_ras_la_LIBADD = $(module_libs)
 #
 libpixbufloader_static_tiff_la_SOURCES = io-tiff.c
 libpixbufloader_tiff_la_SOURCES = io-tiff.c
-libpixbufloader_tiff_la_LDFLAGS = -avoid-version -module
+libpixbufloader_tiff_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_tiff_la_LIBADD = $(LIBTIFF) $(module_libs)
 
 #
@@ -69,7 +102,7 @@ libpixbufloader_tiff_la_LIBADD = $(LIBTIFF) $(module_libs)
 #
 libpixbufloader_static_pnm_la_SOURCES = io-pnm.c
 libpixbufloader_pnm_la_SOURCES = io-pnm.c
-libpixbufloader_pnm_la_LDFLAGS = -avoid-version -module
+libpixbufloader_pnm_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_pnm_la_LIBADD = $(module_libs)
 
 #
@@ -77,7 +110,7 @@ libpixbufloader_pnm_la_LIBADD = $(module_libs)
 #
 libpixbufloader_static_bmp_la_SOURCES = io-bmp.c
 libpixbufloader_bmp_la_SOURCES = io-bmp.c
-libpixbufloader_bmp_la_LDFLAGS = -avoid-version -module
+libpixbufloader_bmp_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_bmp_la_LIBADD = $(module_libs)
 
 #
@@ -85,21 +118,21 @@ libpixbufloader_bmp_la_LIBADD = $(module_libs)
 #
 libpixbufloader_static_wbmp_la_SOURCES = io-wbmp.c
 libpixbufloader_wbmp_la_SOURCES = io-wbmp.c
-libpixbufloader_wbmp_la_LDFLAGS = -avoid-version -module
+libpixbufloader_wbmp_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_wbmp_la_LIBADD = $(module_libs)
 
 #
 # The XBM loader
 #
 libpixbufloader_xbm_la_SOURCES = io-xbm.c
-libpixbufloader_xbm_la_LDFLAGS = -avoid-version -module
+libpixbufloader_xbm_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_xbm_la_LIBADD = $(module_libs)
 
 #
 # The TGA loader
 #
 libpixbufloader_tga_la_SOURCES = io-tga.c
-libpixbufloader_tga_la_LDFLAGS = -avoid-version -module
+libpixbufloader_tga_la_LDFLAGS = -avoid-version -module $(no_undefined)
 libpixbufloader_tga_la_LIBADD = $(module_libs)
 
 if HAVE_PNG
@@ -175,6 +208,7 @@ INCLUDES = @STRIP_BEGIN@ \
        -I$(top_srcdir) -I$(top_builddir)       \
        -I$(top_srcdir)/gdk-pixbuf              \
        -I$(top_builddir)/gdk-pixbuf            \
+       -DGTK_VERSION=\"@GTK_VERSION@\"         \
        @INCLUDED_LOADER_DEFINE@                \
        @GTK_DEBUG_FLAGS@                       \
        @GDK_PIXBUF_DEP_CFLAGS@                 \
@@ -217,10 +251,12 @@ libgdk_pixbuf_1_3_la_SOURCES = @STRIP_BEGIN@ \
 libgdk_pixbuf_1_3_la_LDFLAGS = @STRIP_BEGIN@ \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)    \
        @LIBTOOL_EXPORT_OPTIONS@                                \
+       $(no_undefined)                                         \
+       $(gdk_pixbuf_symbols)                                   \
 @STRIP_END@
 
 libgdk_pixbuf_1_3_la_LIBADD = pixops/libpixops.la $(builtin_objs) $(GDK_PIXBUF_DEP_LIBS)
-libgdk_pixbuf_1_3_la_DEPENDENCIES = $(builtin_objs)
+libgdk_pixbuf_1_3_la_DEPENDENCIES = $(builtin_objs) $(gdk_pixbuf_def)
 
 gdk_pixbuf_headers =                   \
        gdk-pixbuf.h                    \
@@ -238,7 +274,7 @@ noinst_HEADERS =            \
 
 gdk_pixbuf_built_headers = gdk-pixbuf-enum-types.h gdk-pixbuf-marshal.h
 gdk_pixbuf_built_cfiles = gdk-pixbuf-enum-types.c 
-$(OBJECTS): $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c
+$(libgdk_pixbuf_1_3_la_OBJECTS) $(OBJECTS): $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c
 
 CLEANFILES =
 MAINTAINERCLEANFILES = $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c
@@ -328,3 +364,7 @@ EXTRA_DIST =                        \
        pixbufloader_tiff.def           \
        pixbufloader_wbmp.def           \
        pixbufloader_xbm.def
+
+install-data-local: install-ms-lib install-libtool-import-lib
+
+uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
index e97036ac1c5ae4d2ba3f7785c333df74b8a8429c..c2e9a27c82530d85acc39182a2d40950dbe0db4b 100644 (file)
 #include "gdk-pixbuf-private.h"
 #include "gdk-pixbuf-io.h"
 
+#ifdef G_OS_WIN32
+#define STRICT
+#include <windows.h>
+#undef STRICT
+#endif
+
 \f
 
 static gboolean
@@ -252,6 +258,10 @@ pixbuf_module_symbol (GModule *module, const char *module_name, const char *symb
 
 #ifdef G_OS_WIN32
 
+/* DllMain function needed to tuck away the gdk-pixbuf DLL name */
+
+G_WIN32_DLLMAIN_FOR_DLL_NAME (static, dll_name)
+
 static char *
 get_libdir (void)
 {
@@ -259,14 +269,12 @@ get_libdir (void)
 
   if (libdir == NULL)
     libdir = g_win32_get_package_installation_subdirectory
-      (GETTEXT_PACKAGE,
-       g_strdup_printf ("gdk_pixbuf-%d.%d.dll",
-                       GDK_PIXBUF_MAJOR, GDK_PIXBUF_MINOR),
-       "loaders");
+      (GETTEXT_PACKAGE, dll_name, "lib\\gtk-2.0\\" GTK_VERSION "\\loaders");
 
   return libdir;
 }
 
+#undef PIXBUF_LIBDIR
 #define PIXBUF_LIBDIR get_libdir ()
 
 #endif
index b3533e8300e19a6ae680d8cb142e21bf54d9b613..7b48de9d1108ac117252d43bfa341d2f42836c76 100644 (file)
@@ -2,7 +2,10 @@ EXPORTS
        _gdk_pixbuf_get_module
        _gdk_pixbuf_get_named_module
        _gdk_pixbuf_load_module
+       gdk_colorspace_get_type
+       gdk_interp_type_get_type
        gdk_pixbuf_add_alpha
+       gdk_pixbuf_alpha_mode_get_type
        gdk_pixbuf_animation_get_height
        gdk_pixbuf_animation_get_iter
        gdk_pixbuf_animation_get_static_image
@@ -22,6 +25,7 @@ EXPORTS
        gdk_pixbuf_composite_color_simple
        gdk_pixbuf_copy
        gdk_pixbuf_copy_area
+       gdk_pixbuf_error_get_type
        gdk_pixbuf_error_quark
        gdk_pixbuf_fill
        gdk_pixbuf_from_pixdata
@@ -48,19 +52,14 @@ EXPORTS
        gdk_pixbuf_new_from_xpm_data
        gdk_pixbuf_new_subpixbuf
        gdk_pixbuf_ref
-;      gdk_pixbuf_rotate
        gdk_pixbuf_saturate_and_pixelate
        gdk_pixbuf_save
        gdk_pixbuf_savev
        gdk_pixbuf_scale
        gdk_pixbuf_scale_simple
+       gdk_pixbuf_set_option
        gdk_pixbuf_unref
        gdk_pixdata_deserialize
        gdk_pixdata_from_pixbuf
        gdk_pixdata_serialize
        gdk_pixdata_to_csource
-
-       gdk_pixbuf_alpha_mode_get_type
-       gdk_colorspace_get_type
-       gdk_pixbuf_error_get_type
-       gdk_interp_type_get_type
index c989ada04bc993aa9958fe566d91cc4bc8a962fd..62413a1a967d48aeba0c65e8a6fc7de732c18519 100644 (file)
@@ -365,10 +365,10 @@ gdk_pixbuf__xbm_image_begin_load (ModulePreparedNotifyFunc prepare_func,
        context->update_func = update_func;
        context->user_data = user_data;
        context->all_okay = TRUE;
-       context->tempname = g_strdup ("/tmp/gdkpixbuf-xbm-tmp.XXXXXX");
-       fd = mkstemp (context->tempname);
+       fd = g_file_open_tmp ("gdkpixbuf-xbm-tmp.XXXXXX",
+                             &context->tempname,
+                             NULL);
        if (fd < 0) {
-               g_free (context->tempname);
                g_free (context);
                return NULL;
        }
index 30629261dc17483cdbcf1cb0b783075969652c47..2d356d22fb734f23bd5e731d5f2662f2c90385ed 100644 (file)
@@ -1,3 +1,7 @@
+####
+#### Out of order! Use autoconfiscation.
+####
+
 ## Makefile for building the gdk_pixbuf DLL with gcc on Win32
 ## Use: make -f makefile.mingw